#include "./handler_task.h"
#include "../driver/cmd_uart.h"
#include "../service/ota_service.h"

namespace task {

using namespace conn;
using namespace utils;
using namespace driver;

void HandlerTask::run() {
    Message msg;
    for (;;) {
        m_mq.poll(msg);
        dispatch(msg);
    }
}

void HandlerTask::dispatch(const Message &msg) {
    m_task_info.req = msg.conn_info.req;
    m_task_info.seq = msg.conn_info.seq();

    switch (msg.conn_info.req) {
        case proto::REQ_OTA_START: 
            service::ota_start(msg);
        break;

        case proto::REQ_OTA_TRANSLATE:
            service::ota_translate(msg);
        break;

        case proto::REQ_OTA_COMPLETE:
            service::ota_complete(msg);
        break;

        default:
            dispatch_impl(msg);
        break;
    }
    m_task_info.reset();
}




}



